﻿using System.ServiceModel;
using Common.Entities;
using Common.ServiceResponse.ValueObjects;
using Common.ServiceResponse.ValueObjects.Facebook;

namespace FacebookService
{
    [ServiceContract]
    public interface IFacebookService
    {
        [OperationContract]
        NetworkLoginDetails LogInFacebook(SecurityKey securityKey);

        [OperationContract]
        UserProfile GetUserProfile(string accessToken);

        [OperationContract(Name="GetFriends")]
        Friends GetUserFriends(string accessToken, string userId);

        [OperationContract(Name = "GetFriendsByPagingUrl")]
        Friends GetUserFriends(string pagingUrl);

        [OperationContract(Name="GetPhotoAlbums")]
        PhotoAlbums GetPhotoAlbums(string accessToken, string userId);

        [OperationContract(Name = "GetPhotoAlbumsByPagingUrl")]
        PhotoAlbums GetPhotoAlbums(string pagingUrl);

        [OperationContract(Name = "GetPhotos")]
        Photos GetPhotos(string accessToken, string albumId);

        [OperationContract(Name = "GetPhotosByPagingUrl")]
        Photos GetPhotos(string pagingUrl);

        [OperationContract(Name = "GetUserWall")]
        Wall GetUserWall(string accessToken, string userId);

        [OperationContract(Name = "GetUserWallByPagingUrl")]
        Wall GetUserWall(string pagingUrl);
    }

}
